Systems and methods for dynamic rate identification

ABSTRACT

A dynamic rate adjustment system identifies a user device and receives data from the user device comprising data describing a location of the user device. The dynamic rate adjustment system identifies a current time and a current cost for networking services to be provided to the user device. The dynamic rate adjustment system determines a dynamic rate for the user device to use the networking services based on the current time, user device data, and the cost for networking services. The user device may be caused to pause transmitting or receiving certain types of data based on the dynamic rate.

BACKGROUND

Network operators, such as telecommunication network operators, 4G/5G network operators, private network operators, or other types of network operators that provide user devices with access to networking services, typically bill users for accessing networking services via user devices (or “user equipment”) based on a predetermined rate. The predetermined rate does not change even when the network load, device location, or other aspects of the user device, network, or networking services change.

BRIEF SUMMARY

Network operators typically bill users based on a predetermined, or pre-negotiated, rate for access to a network operated by the network operator. The rate may include a variety of aspects, such as a price paid by a user to access the network via devices associated with the user (“user devices”), an amount of data which the user device is able to transmit or receive, or other aspects of a rate set by a network operator for access to a network. However, network operators are unable to dynamically adjust these predetermined rates based on factors affecting the service provided to user devices. These factors may be one or more of: the cost to provide networking services, such as bandwidth costs, costs per byte, kilobyte, megabyte, gigabyte, etc., of transmitting data, and other costs to provide networking services; the location of the user device, such as whether the user device is in an area within which a large number of other user devices are connected to the network, a small number of other user devices are connected to the network, etc.; the effect of the day, time of day, time of week, time of month, time of year, etc., on one or more factors affecting the service; and other factors affecting the service provided to user devices.

Furthermore, user devices are unable to take these factors into account when choosing which data to transmit or receive by using the network services provided by a network. For example, a user device may have data that is of a higher priority, and must frequently be transmitted or received in order for the user device to function. Likewise, a user device may have data which is of a lower priority that does not need to be frequently transmitted or received in order for the device to function. The user device in this example is unable to prioritize the higher priority data, ensure that the higher priority data is processed in a timely manner, etc., when certain factors affecting the network impair the user device's ability to quickly, reliably, etc., transmit and receive the higher priority data.

The embodiments disclosed herein address the issues above and thus help solve the above technical problems and improve the technology for identifying rates for services provided by a network by identifying a dynamic rate based on a variety of factors related to a network. Additionally, the embodiments disclosed herein can enable a user device to change the types of data transmitted by the user device based on the dynamic rate.

In some embodiments, a dynamic rate identification system identifies a user device, receives data from the user device, the data including data describing a location of the user device, identifies a current time, identifies a cost for networking services to be provided to the user device, and determines a dynamic rate for the user device to use the networking services based on the current time, user device data, and the cost for networking services. The dynamic rate may be a price charged to a user associated with the user device for the use of networking services provided by the network.

In some embodiments, a user device transmits one or more types of data via a network, each type of data having a priority, transmits location data to a dynamic rate identification system, receives a dynamic rate from the dynamic rate identification system, determines whether at least one type of data of the one or more types of data should not be transmitted by the user device based on at least the priority of each type of data and the dynamic rate, and causes the user device to temporarily stop transmitting the at least one type of data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram depicting an example environment in which the dynamic rate identification system is implemented.

FIG. 2 is a block diagram depicting example components incorporated in a dynamic rate identification system, according to various embodiments described herein.

FIG. 3 is a graph diagram depicting a multi-dimensional graph of a dynamic rate, according to various embodiments described herein.

FIG. 4 is a display diagram depicting a sample network utilization over time, according to various embodiments described herein.

FIG. 5 is a flow diagram depicting a process to determine a dynamic rate for a user device, according to various embodiments described herein.

FIG. 6 is a flow diagram depicting a process to determine a dynamic rate for a user device based on a sector within which the user device is located, according to various embodiments described herein.

FIG. 7 is a flow diagram depicting a process for causing a user device not to transmit or receive at least one type of data, according to various embodiments described herein.

FIG. 8 is a flow diagram depicting a process to determine a dynamic rate for a user device based on a route of the user device, according to various embodiments described herein.

FIG. 9 is a flow diagram depicting a process for a user device to receive a dynamic rate and stop transmitting at least one type of data, according to various embodiments described herein.

FIG. 10 is a flow diagram depicting a process to use a hotspot within a sector to transmit data which a user device is not transmitting based on a dynamic rate, according to various embodiments described herein.

FIG. 11 is a diagram depicting an example of using a dynamic rate identification system to apply new dynamic rates to data transmitted from or received by a user device as it travels along a route, according to various embodiments described herein.

DETAILED DESCRIPTION

Network operators, network providers, etc., (“network operators”) typically bill users based on predetermined rates for access to a network, or networking services, operated by the network operator. The rate may include various aspects, such as a price paid by a user to access the network via user devices, an amount of data which the user device is able to transmit or receive, or other aspects of a rate set by a network operator for access to a network. However, network operators are unable to dynamically adjust these predetermined rates based on factors affecting the service provided to user devices, such as the location of the user device, the cost to provide networking services, the presence of other devices which are also using the network near the location of the user device, the time that the user device accesses the network, and other factors which may affect the service provided to a user device.

Furthermore, neither the user devices nor the network itself are able to take these factors into account when choosing which data the user device should transmit or receive by using the network services provided by a network. A user device may have different tiers of priority for data transmitted or received by the user device, such as a higher tier for data required to operate the user device or for high-priority functions of the user device, and a lower tier for data related to low-priority functions of the user device. Furthermore, user devices may be required to transmit or receive large quantities of data in order to properly function.

As an example, smart or automated cars typically transmit and receive large amounts of data, in some cases transmitting or receiving multiple gigabytes of data per hour, related to automatically driving or operating the car, such as data collected by sensors included in the car to sense the car's surroundings. The car may transmit and receive the large amount of sensor data, in addition to other data, such as data regarding media consumed by the driver, data regarding maintenance or the status of one or more parts of the car, or other data collected by a car. Without the dynamic rate provided by the dynamic rate identification system, the car is forced to transmit and receive all of these types of data without any clear indication of the current load on the network. Thus, the car may receive and transmit data related to its surroundings at a slower rate than needed in order to automatically drive the car because of the high load on the network and because the car is transmitting and receiving all types of data at once. However, the dynamic rate identification system can calculate a dynamic rate for the car based on the car's location. This dynamic rate can be used to determine whether the car should stop transmitting and receiving lower priority data for a period of time, until the car reaches a certain location, until the car is able to connect to a Wi-Fi network or hotspot, etc., and then resume receiving and transmitting the lower priority data. Thus, the car's high-priority functionality is not impacted, or is minimally impacted, by the network load.

As another example, a user device which is a cellular telephone may transmit and receive data regarding phone calls, applications, SMS or MMS messages, etc., for a user. The user may be entering an urban area during their commute, and may have queued a movie download during their commute, which may be assigned a low priority. A dynamic rate may be used to cause the cellular telephone to pause the movie download until the cellular telephone is able to connect to a less busy cell tower, a Wi-Fi network or hotspot, etc., and then resume downloading the movie, in order to ensure that higher priority functions of the cellular telephone, such as making calls, are able to be minimally impacted by a high network load caused by a large number of commuters traveling to the same urban area.

The embodiments disclosed herein address the issues above and thus help solve the technical problems and improve the technology for identifying rates for services provided by a network by identifying a dynamic rate based on a variety of factors related to a network. Additionally, the embodiments disclosed herein are able to cause a user device to change the types of data transmitted by the user device based on the dynamic rate.

By changing the types of data transmitted by user devices based on the dynamic rate, the embodiments disclosed herein can improve the performance of network resources by ensuring that the overall network load is better distributed over time. For example, applying the dynamic rate to user devices may cause user devices to stop transmitting certain types of data during periods with high network load, and to instead transmit those types of data during times of low network load. As such, the use of dynamic rate described herein can result in reducing the network load during periods of relatively high network loads. Distributing the network load in such a manner can improve the quality of networking services being provided to user devices across the network. Furthermore, applying the dynamic rate to user devices can increase the usage of the network during periods of relatively lower network load, thus ensuring that resources used to ensure that the network is still able to offer a certain quality of service are utilized as much as possible. A period of relatively high network load may include a period of time in which a measure of the network load is greater than a selected threshold measure of the network load. A period of relatively low network load may include a period of time in which a measure of the network load is less than a selected threshold measure of the network load.

In some embodiments, a dynamic rate identification system identifies a user device, receives data from the user device, the data including data describing a location of the user device, identifies a current time, identifies a cost for networking services to be provided to the user device, and determines a dynamic rate for the user device to use the networking services based on the current time, user device data, and the cost for networking services.

In some embodiments, a dynamic rate identification system identifies one or more sectors of a network, each sector representing a geographic area within which the network is able to provide networking services to user devices, identifies a cost for providing networking services to user devices located within each sector, identifies a change in the cost for providing networking service over time for each sector, identifies a user device, receives data from the user device, the user data including data describing a location of the user device, data describing one or more types of data for which the user device requires or consumes networking services, and data describing a priority measure for each type of data of the one or more types of data, identifies a current time, determines a sector within which the user device is located based on the location of the user device and the identified sectors, determines a dynamic rate for providing networking services to the user based on the current time, the cost for providing networking services to user devices located within the determined sector, and the change in the cost for providing networking services over time within the determined sector, determines whether the user device should not transmit at least one type of data of the one or more types of data based on the priority measure for each type of data and the dynamic rate, and causes the user device to not transmit the at least one type of data.

In some embodiments, the dynamic rate identification system receives updates regarding the location of the user device. The updates may be received over a period of time, received periodically, received for a predetermined amount of time, received at predetermined time intervals, etc. The dynamic rate identification system may use an update to determine a new sector within which the user device is located, determine a new current time, determine a new dynamic rate for the user device, or any combination of the three.

In some embodiments, the dynamic rate identification system receives an indication of a route of the user device, the route including one or more potential future locations of the user device. The dynamic rate identification system may determine a dynamic rate based on the potential future locations included in the route. The dynamic rate identification system may predict a plurality of dynamic rates for the user device. The predicted dynamic rates may be used to cause the user devices to pause or resume transmitting or receiving data as the user device moves along the route. For example, the user device may pause transmitting and receiving low priority data between locations A and B, resume transmitting and receiving low priority data between locations B and C, and pause transmitting and receiving the low priority data again between locations C and D. The route may be a predicted route of the user device, a known route of the user device, a planned route of the user device, or any other type of route taken by the user device.

In some embodiments, a user device transmits one or more types of data via a network, each type of data having a priority, transmits location data to a dynamic rate identification system, receives a dynamic rate from the dynamic rate identification system, determines whether at least one type of data of the one or more types of data should not be transmitted by the user device based on at least the priority of each type of data and the dynamic rate, and causes the user device to temporarily stop transmitting the at least one type of data.

In some embodiments, the dynamic rate identification system identifies one or more low-cost networks, hotspots, etc., such as, for example, a user's home Wi-Fi network, a public Wi-Fi network made available for free by an entity other than a user, or other low-cost networks or hotspots which a device can use to access the Internet, (collectively “hotspots”) within a sector. The dynamic rate identification system may cause the user device to connect to a hotspot and resume transmitting and receiving types of data whose transmission and reception have been paused due to the dynamic rate. The dynamic rate identification system may pause the transmission and reception of the types of data after the user device is disconnected from the hotspot. The dynamic rate identification system may identify the hotspots based on data stored by the user device indicating one or more hotspots to which the user device has previously connected. The dynamic rate identification system may identify the hotspots through a partnership between the network operator, the user, a manufacturer of the user device, etc., and an entity providing the hotspots.

Unless the context requires otherwise, throughout the specification and claims which follow, the word “comprise” and variations thereof, such as, “comprises” and “comprising” are to be construed in an open, inclusive sense, for example “including, but not limited to.”

Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

As used in this specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the content clearly dictates otherwise. The term “or” is generally employed in its sense including “and/or” unless the content clearly dictates otherwise.

The headings and Abstract of the Disclosure provided herein are for convenience only and do not interpret the scope or meaning of the embodiments.

FIG. 1 is a diagram depicting an example environment 100 in which the dynamic rate identification system 200 is implemented. The environment 100 includes a user device 101, sectors 103 a-103 c, a network 105, and a dynamic rate identification system 200. The dynamic rate identification system 200 is further described with respect to FIG. 2 . It is to be appreciated that FIG. 1 illustrates just one example of an environment 100 and that the various embodiments discussed herein are not limited to the use of such an environment. For example, in some embodiments, the environment 100 may include additional or fewer of each of the user devices, sectors, networks, and dynamic rate identification systems described in connection with the environment 100.

The user device 101 may be or include one or more devices, such as vehicles (for example, cars, trucks, autonomous vehicles, or another type of vehicle), cellular telephones, smartphones, tablets, personal computers, laptop computers, drones, or any other device configured to communicate over a network 105 which may move through time and space. The user device 101 may interconnect to one or more communications media or sources, such as routers, network switches, modems, etc., to transmit communications to other devices. The user device 101 may include user device data 111. The user device data 111 includes data used by the user device to perform its functions, such as sensor data, user data, applications, an operating system, etc. The user device data 111 additionally includes data describing the types of data that the user device 101 transmits and receives via network services. The user device data 111 additionally includes data describing a priority measure for each type of data that the user device 101 transmits and receives via network services. The priority measure may indicate that the type of data is prioritized based on one or more tiers, such as, for example, high priority, medium priority, low priority, etc. Data from the same source may have multiple assignable priorities depending on the content of the data. For example, sensor data collected on a normally operating component of a vehicle may be assigned as low priority. However, data from the same sensor which detects an abnormal condition may be assigned a higher priority.

The sectors 103 a-103 c each represent a sector that receives networking services from a network, such as a network 105. Each sector 103 represents a geographic area within which the network provides networking services, such as a city, an area of network coverage provided by one or more cell towers, or other types of geographic areas. A sector 103 may be described based on the network load of one or more particular cell towers within the sector. Further, each sector 103 may be described based on the type of area it represents, such as suburban, urban, rural, city center, city residential area, highway, or other types of area which describe a geographic location.

The network 105 is a network, communication system, or networked system (not shown), which the user device 101 and other devices (not illustrated) may use to communicate via one or more wireless or wired communication technologies. Non-limiting examples of such a network 105 include, but are not limited to, an Ethernet system, twisted pair Ethernet system, an intranet, a local area network (LAN) system, short range wireless network (e.g., Bluetooth®), a personal area network (e.g., a Zigbee network based on the IEEE 802.15.4 specification), a Consumer Electronics Control (CEC) communication system, Wi-Fi, satellite communication systems and networks, cellular networks, cable networks, 4G/5G/6G network, or the like. One or more user devices 101, such as PCs, tablets, laptop computers, smartphones, personal assistants, Internet connection devices, wireless LAN, Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX) devices, or the like, may be communicatively coupled to the network 105 and/or to each other so that the plurality of user devices are communicatively coupled together. Thus, such a network 105 enables the user device 101 to use the network 105 to transmit or receive data from other computing devices, servers, user devices, or other devices, computers, or systems, connected to a network.

In the depiction of the environment 100 in FIG. 1 , the network 105 may collect data regarding each of the sectors 103 a-103 c, such as a number of user devices in a sector over a period of time (such as throughout a day, week, month, etc.), a cost to provide services to user devices over the period of time, and other data related to providing network services to user devices within each sector 103 a-103 c. The data regarding each sector 103 a-103 c may be analyzed by a dynamic rate identification system, such as by using statistical analysis, machine learning models, artificial intelligence, etc., to generate dynamic rates which may be billed to user devices when the user device uses network services within a sector at certain times. In some embodiments, the dynamic rate identification system 200 collects the data regarding each of the sectors 103 a-103 c. The dynamic rate identification system 200 may obtain the location of the user device 101, such as by receiving the location from the user device, triangulating the user device location, or other methods of obtaining the location of a user device. The dynamic rate identification system 200 may identify the sector within which the user device 101 is located and generate a dynamic rate for the user device based on the location of the user device and the data regarding the identified sector. The dynamic rate is used to determine whether the user device should pause transmitting or receiving one or more types of data.

In some embodiments, the dynamic rate is used to determine whether the user device should pause transmitting or receiving one or more types of data along with one or more of: a current network load of at least one cell tower, a predicted network load of at least one cell tower, a measure of the network coverage in an area in which the user device currently is located or is predicted to be located, a scheduled or predicted path of the user device, and other factors which may influence a determination of whether the user device should pause transmitting or receiving one or more types of data. For example, the user device may pause transmitting low priority data as it travels along a route, but may resume transmitting the low priority data while it is connected to a cell tower along the route which is currently experiencing a low network load. In another example, the user device may pause transmitting or receiving the data of a certain priority, such as the lowest priority data, unless the user device is connected to a hotspot or a cell tower experiencing unusually low network load. Furthermore, the network load of the cell towers may be predicted based on a future location of the user device, a predicted time the user device would be connected to the cell tower, historical data describing the network load of the cell tower, data describing the current network load of the cell tower, or other data used to predict network load for a cell tower. Additionally, while each of these examples describe individual cell towers, the dynamic rate identification system may use any description or representation of a geographic area, such as the sectors 103 described above, in the same or a similar manner.

The above description of the environment 100, and the various networks, devices, and functions therein, is intended as a broad, non-limiting overview of an example environment in which various embodiments of a dynamic rate identification system can operate. The environment 100, and the various devices therein, may contain other devices, systems and/or media not specifically described herein. The environment 100, and the various functions therein, may contain other functions, systems and/or media not specifically described herein.

Example embodiments described herein provide applications, tools, data structures, and other support to implement systems and methods for identifying a dynamic rate for a user device to use network services, such as the user device 101 and network 105 respectively. The example embodiments described herein additionally provide applications tools, data structures, and other support to implement systems and methods for determining whether the device should stop transmitting or receiving one or more types of data based on the dynamic rate. Other embodiments of the described techniques may be used for other purposes, such as determining a plurality of dynamic rates for a route traveled by a user device. The embodiments described herein may also be used for determining when the device should resume transmitting or receiving the one or more types of data. In the description provided herein, numerous specific details are set forth in order to provide a thorough understanding of the described techniques. The embodiments described also can be practiced without some of the specific details described herein, or with other specific details, such as changes with respect to the ordering of processes or devices, different processes or devices, and the like. Thus, the scope of the techniques and/or functions described are not limited by the particular order, selection, or decomposition of steps described with reference to any particular module, component, or routine.

FIG. 2 is a block diagram depicting example components incorporated in a dynamic rate identification system 200, according to various embodiments described herein. In various embodiments, the dynamic rate identification system 200 includes one or more of the following: a computer memory 201 for storing programs and data while they are being used, including data associated with sectors of the network, such as sectors 103 a-103 c, a network, such as the network 105, user devices, such as the user device 101, an operating system including a kernel, and device drivers; a central processing unit (CPU) 202 for executing computer programs; a persistent storage device 203, such as a hard drive or flash drive for persistently storing programs and data; and a network connection 204 for connecting to one or more computer devices, functions or components of the network 105, user devices, such as the user device 101, devices implementing a hotspot, other systems in the telecommunication network, and/or other computer systems, to send and/or receive data, such as via the Internet or another network and associated networking hardware, such as switches, routers, repeaters, electrical cables and optical fibers, light emitters and receivers, radio transmitters and receivers, and the like. In various embodiments, the dynamic rate identification system 200 additionally includes input and output devices, such as a keyboard, a mouse, display devices, etc. Aspects of the dynamic rate identification system 200 may be implemented as part of the network (such as a network core, an edge computing resource for the network, or other computing resources available to a network), the user device, or some combination thereof.

While a dynamic rate identification system 200 configured as described may be used in some embodiments, in various other embodiments, the dynamic rate identification system 200 may be implemented using devices of various types and configurations, and having various components. The memory 201 may include a roaming dynamic rate identification controller 210 which contains computer-executable instructions that, when executed by the CPU 202, cause the dynamic rate identification system 200 to perform the operations and functions described herein. For example, the programs referenced above, which may be stored in computer memory 201, may include or be comprised of such computer-executable instructions.

The dynamic rate identification controller 210 performs the core functions of the dynamic rate identification system 200, as discussed herein and also with respect to FIGS. 3 through 11 . Aspects of the dynamic rate identification controller 210 which perform the functions of the dynamic rate identification system 200 may be implemented as part of the network (such as a network core, an edge computing resource for the network, or other computing resources available to a network), the user device, or some combination thereof. In particular, the dynamic rate identification controller 210 determines a dynamic rate for a user device based on the current attributes of a sector, such as a cost for providing network services to user devices located within the sector, a change in the cost for providing networking services over time, and a current time that the user device is located within the sector. Additionally, the dynamic rate identification controller 210 may determine a type of data the user device should pause or stop transmitting or receiving based on the determined dynamic rate and a priority measure of the type of data. Furthermore, the dynamic rate identification controller 210 may determine one or more dynamic rates for a user device based on a path or route of the user device. The dynamic rate identification controller 210 may determine a dynamic rate based on statistical analysis, artificial intelligence, a machine learning model, etc. For example, the dynamic rate identification controller 210 may train a machine learning model to predict a dynamic rate based on one or more of: a change in the cost for providing networking network services to a user device within a sector; a location of a sector; a temporal variable for determining the rate, such as a day, time of day, etc.; a speed of the user device; or other attributes used to determine a dynamic rate for a user device. As another example, the dynamic rate identification controller 210 may perform statistical analysis on the data used to determine dynamic rates to identify an equation or curve used to calculate a dynamic rate based on one or more of: a change in the cost for providing networking network services to a user device within a sector; a location of a sector; a temporal variable for determining the rate, such as a day, time of day, etc.; a speed of a user device; or other attributes used to determine a dynamic rate for a user device.

The dynamic rate identification controller 210 may include a location identifier 211. The location identifier 211 may be used to determine a current location of a user device, a change in the location of a user device over time, or other aspects of the user device related to its location. The location identifier 211 may determine a location of the user device based on one or more of: a location provided by the user device, such as via GPS or other spatial coordinates; a location determined by network equipment within the sector which transmits or receives data related to the user device; and other methods of determining a location of a user device.

In some embodiments, the data collected by the location identifier 211 is used to determine a speed of the user device. The dynamic rate identification system 200 may use the data collected by the location identifier 211 to determine a speed of the user device by identifying the distance traveled by the user device over a period of time. The determined speed of the user device may be used to determine the dynamic rate applied to the user device. For example, a first dynamic rate may be applied to the user device while it is moving at 60 miles per hour, and a second dynamic rate may be applied to the user device while it is stationary.

In an example embodiment, the dynamic rate identification controller 210 and/or computer-executable instructions stored on memory 201 of the dynamic rate identification system 200 are implemented using standard programming techniques. For example, the dynamic rate identification controller 210 and/or computer-executable instructions stored on memory 201 of the dynamic rate identification system 200 may be implemented as a “native” executable running on CPU 202, along with one or more static or dynamic libraries. In other embodiments, the dynamic rate identification controller 210 and/or computer-executable instructions stored on memory 201 of the dynamic rate identification system 200 may be implemented as instructions processed by a virtual machine that executes as some other program.

The embodiments described above may also use synchronous or asynchronous client-server computing techniques. However, the various components may be implemented using more monolithic programming techniques as well, for example, as an executable running on a single CPU computer system, or alternatively decomposed using a variety of structuring techniques known in the art, including but not limited to, multiprogramming, multithreading, client-server, or peer-to-peer, running on one or more computer systems each having one or more CPUs. Some embodiments may execute concurrently and asynchronously, and communicate using message passing techniques. Equivalent synchronous embodiments are also supported. Also, other functions could be implemented or performed by each component or module, and in different orders, and by different components/modules, yet still achieve the functions of the dynamic rate identification system 200.

In addition, programming interfaces to the data stored as part of the dynamic rate identification controller 210 can be available by standard mechanisms such as through C, C++, C #, Java, and Web APIs; libraries for accessing files, databases, or other data repositories; through scripting languages such as JavaScript and VBScript; or through Web servers, FTP servers, or other types of servers providing access to stored data. The dynamic rate identification controller 210 may be implemented by using one or more database systems, file systems, or any other technique for storing such information, or any combination of the above, including implementations using distributed computing techniques.

Different configurations and locations of programs and data are contemplated for use with techniques described herein. A variety of distributed computing techniques are appropriate for implementing the components of the embodiments in a distributed manner including but not limited to TCP/IP sockets, RPC, RMI, HTTP, Web Services (XML-RPC, JAX-RPC, SOAP, and the like). Other variations are possible. Also, other functionality could be provided by each component/module, or existing functionality could be distributed amongst the components/modules in different ways, yet still achieve the functions of the dynamic rate identification system 200, user device 101, and network 105.

Furthermore, in some embodiments, some or all of the components/portions of the dynamic rate identification controller 210, and/or functionality provided by the computer-executable instructions stored on memory 201 of the dynamic rate identification system 200 may be implemented or provided in other manners, such as at least partially in firmware and/or hardware, including, but not limited to, one or more application-specific integrated circuits (ASICs), standard integrated circuits, controllers (e.g., by executing appropriate instructions, and including microcontrollers and/or embedded controllers), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and the like. Some or all of the system components and/or data structures may also be stored as contents (e.g., as executable or other machine-readable software instructions or structured data) on a computer-readable medium (e.g., as a hard disk; a memory; a computer network or cellular wireless network; or a portable media article to be read by an appropriate drive or via an appropriate connection, such as a DVD or flash memory device) so as to enable or configure the computer-readable medium and/or one or more associated computing systems or devices to execute or otherwise use or provide the contents to perform at least some of the described techniques. Such computer program products may also take other forms in other embodiments. Accordingly, embodiments of this disclosure may be practiced with other computer system configurations.

In general, a range of programming languages may be employed for implementing any of the functionality of the servers, functions, user equipment, etc., present in the example embodiments, including representative implementations of various programming language paradigms and platforms, including but not limited to, object-oriented (e.g., Java, C++, C #, Visual Basic.NET, Smalltalk, and the like), functional (e.g., ML, Lisp, Scheme, and the like), procedural (e.g., C, Pascal, Ada, Modula, and the like), scripting (e.g., Perl, Ruby, PHP, Python, JavaScript, VBScript, and the like) and declarative (e.g., SQL, Prolog, and the like).

FIG. 3 is a graph diagram depicting a multi-dimensional graph 300 of a dynamic rate, according to various embodiments described herein. Although the graph 300 includes three axes each representing an attribute of a sector used to determine the dynamic rate, additional or fewer axes representing one or more other attributes of a sector may be used to determine the dynamic rate. Furthermore, while the multi-dimensional graph 300 shows a representation of a relationship between the attributes which could be used to determine the dynamic rate, the dynamic rate identification system 200 may use other methods of determining a dynamic rate, and is not required to use a graph, such as the multi-dimensional graph 300, to determine the dynamic rate. Thus, while a graph such as the multi-dimensional graph 300 may be used to determine the dynamic rate, the multi-dimensional graph 300 is used to visually depict the relationship between attributes used to determine the dynamic rate.

The multi-dimensional graph 300 includes a temporal variable axis 301, a location axis 303, and a cost for network services axis 305. The multi-dimensional graph 300 additionally includes a dynamic rate line 307. The temporal variable axis 301 represents temporal data, such as a time of day, day of week, week of month, day of month, etc. The location axis 303 represents a location, such as a geographic location, spatial coordinates, a group of coordinates representing a location, an altitude, or other methods of identifying a geographic location or area. The cost for network services axis 305 represents the cost to provide networking services to a user, such as: a cost per byte, kilobyte, megabyte, gigabyte, terabyte, etc.; a cost for network infrastructure; a measure of the current load on the network; or other costs which may be related to providing networking services to a user. The dynamic rate line 307 represents a function of cost to provide network services, location of a user device, and a time.

In some embodiments, the multi-dimensional graph includes additional axes representing additional attributes used for determining the dynamic rate. For example, the multi-dimensional graph may include a representation of the historical behavior of the user device to which the dynamic rate is to be applied. In another example, the multi-dimensional graph may include a representation of the speed of the user device. By taking into account the speed of the user device, the dynamic rate is able to represent the rate at which new resources need to be allocated to the device as it travels through network sectors.

FIG. 4 is a display diagram depicting a sample network utilization over time 400, according to various embodiments described herein. FIG. 4 includes usage indicators 401, a representation of a downtown core 403 a and 403 b, and a representation of suburbs 405 a and 405 b. The usage indicators 401 indicate the utilization of network services in each of the downtown core 403 a and 403 b and suburbs 405 a and 405 b. The cores 403 a and 403 b and the suburbs 405 a and 405 b are example embodiments of the sectors 103 a-103 c described above in connection with FIG. 1 .

In the example depicted in FIG. 4 , at 9:00 AM on Monday morning, a majority of the downtown core 403 a experiences high network utilization, as depicted by the utilization indicators in each of the depicted buildings in the downtown core 403 a. Likewise, at the same time the majority of the suburbs 405 a experience low network utilization. In contrast, at 7:00 PM on Saturday evening, the majority of the downtown core 403 b experiences low utilization, while the majority of the suburbs 405 b experience high utilization.

Thus, in this example, the dynamic rate identification system may calculate a higher dynamic rate for a user device located in the downtown core 403 a or suburbs 405 b and a lower dynamic rate for a user device located in the suburbs 405 a and downtown core 403 b. These dynamic rates may be used to determine whether user devices in each of the areas should pause or resume transmitting or receiving certain types of data. Furthermore, the dynamic rates may be used to instruct user devices to transmit or receive certain types of data only when the user device is connected to a hotspot.

FIG. 5 is a flow diagram depicting a process to determine a dynamic rate for a user device, according to various embodiments described herein. The process described in FIG. 5 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 501, a dynamic rate identification system, such as the dynamic rate identification system 200 in FIGS. 1 and 2 , identifies a user device. The user device may be a car, cellular telephone, laptop, tablet, drone, or any other type of user device, such as the user device 101 in FIG. 1 .

At act 503, the dynamic rate identification system receives data from the user device, including data describing a location of the user device, and, if available, a projected path of travel for the user device. The data received from the user device may include one or more of: an indication of the type of data that the user device transmits or receives and an indication of one or more priority measures for a plurality of the types of data that the user device transmits or receives. In some embodiments, the dynamic rate identification system determines at least one priority measure for at least one type of data that the user device transmits or receives based on one or more of: one or more functions of the user device, the type of data, an indication from a user of the user device that the type of data should be prioritized, or other indicators of the importance of a type of data for the functionality of a user device.

At act 505, the dynamic rate identification system identifies a current network load of a sector in which the user device is located. In some embodiments, the dynamic rate identification system identifies the sector in which the user device is located based on the data received in act 503. At act 507, the dynamic rate identification system identifies a cost for networking services to be provided to the user device. In some embodiments, the cost for networking services to be provided to the user device is determined based on the current network load of the sector in which the user device is located.

At act 509, the dynamic rate identification system determines a dynamic rate for the user device based on one or more of: the current network load, the user device data, and the cost for networking services. In some embodiments, the dynamic rate identification system uses historical usage data for the user device to determine the dynamic rate. The historical usage data may include data describing when the user device typically accesses the network, the type of data transmitted or received when the user device accesses the network, the amount of data transmitted or received when the user device accesses the network, the length of time that the user device spends transmitting or receiving data, or other data that indicates a pattern of the user device's usage of network resources. For example, a user device which typically uses network resources in the morning, but not at night, may receive a dynamic rate that is higher in the morning and lower at night.

In some embodiments, at act 509, the dynamic rate identification system uses a speed of the user device to determine the dynamic rate. For example, a user device which is predicted to travel through network sectors at high speed based on the current speed of the user device may have a higher dynamic rate than if the user device was predicted to travel through network sectors at a lower speed.

At act 511, the dynamic rate identification system causes the user device to transmit data based on the dynamic rate. In some embodiments, causing the user device to transmit data based on the dynamic rate includes one or more of: transmitting an indication of the dynamic rate to the user device, transmitting an indication of one or more types of data which the user device should pause or resume transmitting, transmitting instructions to the user device to determine one or more types of data which the user device should stop or resume transmitting based on the dynamic rate, or other methods of causing a user device to transmit data based on a dynamic rate.

In some embodiments, the dynamic rate determined in act 509 may be used to reserve network capacity for the user device. The dynamic rate may be used to reserve network capacity based on movement of the user device, an indication of the user device's usage of network capacity, or other methods of determining whether to reserve network capacity based on a dynamic rate. For example, a dynamic rate which indicates that the user device is likely to travel through multiple network sectors may be used to reserve network capacity for the user device at those network sectors when the user device is predicted to pass through the network sectors. In some embodiments, the dynamic rate identification system reserves network capacity by using network slices.

After act 509, the process ends.

FIG. 6 is a flow diagram depicting a process to determine a dynamic rate for a user device based on a sector within which the user device is located, according to various embodiments described herein. The process described in FIG. 6 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 601, the dynamic rate identification system identifies one or more sectors of a network. The sectors may represent geographic areas within the network's coverage, such as urban areas, suburban areas, rural areas, areas which are provided networking services by one or more cell towers, etc.

At act 603, the dynamic rate identification system identifies a cost for providing networking services and identifies a change in the cost to provide networking services over time for each sector. The dynamic rate identification system may perform act 603 based on historical data describing the cost for providing networking services in the sector and/or based on a current, or “live,” usage of networking resources in the sector. The historical data may be periodically updated to include present costs for providing networking services. The historical data may be historical data for: an entire sector; a portion of a sector; multiple sectors which share an attribute, such as being rural, urban, suburban, etc.; for one or more locations defined by geographic coordinates, such as Global Positioning System coordinates; or other historical data which may be useful for determining a change in the cost over time to provide networking services for a user device. The historical data may include data related to the amount of user devices connected to the network during one or more periods of time. The historical data may include data related to the amount of bandwidth used by user devices connected to the network during one or more periods of time. In some embodiments, the historical data includes data describing a pattern of the user device's usage of network resources.

At act 605, the dynamic rate identification system receives user device data from a user device. At act 607, the dynamic rate identification system determines a sector within which the user device is located based on the user device data and the identified sectors.

At act 609, the dynamic rate identification system determines a dynamic rate for the user device based on the identified sector. In some embodiments, the dynamic rate identification system may additionally determine the dynamic rate based on one or more of: a current time, the current cost for providing networking services in the identified sector, historical data related to the cost for providing networking services in the identified sector, and a path or route along which the user device travels or is expected to travel.

After act 609, the process ends.

FIG. 7 is a flow diagram depicting a process for causing a user device not to transmit or receive at least one type of data, according to various embodiments described herein. The process described in FIG. 7 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 701, the dynamic rate identification system receives data describing one or more types of data transmitted by a user device.

At act 703, the dynamic rate identification system receives data describing a priority measure for each type of data of the one or more types of data. In some embodiments, the dynamic rate identification system receives data describing a priority measure for a portion of the one or more types of data. The priority measure may be a numeric measure, a textual indication of a measure, etc. The priority measure may indicate that a type of data is within one tier of priority of a plurality of tiers of priority. For example, types of data in a lower tier of priority may be less prioritized than types of data in a higher tier of priority.

At act 705, the dynamic rate identification system receives an indication of a dynamic rate for providing networking services to the user devices. At act 707, the dynamic rate identification system determines whether the user device should not transmit at least one type of data based on the priority measures for each of the one or more types of data and the dynamic rate. In some embodiments, the dynamic rate identification system additionally determines whether the user device should not transmit at least one type of data based on an indication of the current network load. The indication of the current network load may be obtained from the network, such as the network 105. The indication of the current network load may be determined by the dynamic rate identification system based on at least the dynamic rate or the data used to determine the dynamic rate. For example the dynamic rate identification system may compare the dynamic rate to previous rates to determine the current load of the network.

At act 709, the dynamic rate identification system causes the user device to not transmit or receive the at least one type of data. The dynamic rate system may cause the user device not to transmit or receive the at least one type of data for a period of time, until the device is nearby or connected to a hotspot, until the user device has changed locations or sectors, until a new dynamic rate is calculated for the user device, etc.

After act 709, the process ends. While the process 700 is described as being performed by the dynamic rate identification system, in some embodiments, the user device performs all or some of the acts described in the process 700.

FIG. 8 is a flow diagram depicting a process to determine a dynamic rate for a user device based on a route of the user device, according to various embodiments described herein. The process described in FIG. 8 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 801, the dynamic rate identification system receives an indication of a route of the user device. The route may be a planned route, a predicted route, a current route, etc., which will be, or is currently being, travelled by a user device.

At act 803, the dynamic rate identification system predicts which sectors the user device will pass through based on the indication of the route, and the time that the user device will pass through the sectors. The dynamic rate identification system may predict the sectors that the user device will pass through the sectors based on location data describing the sectors and the route obtained in act 801. The dynamic rate identification system may predict the time that the user device will pass through the sectors based on the route obtained in act 801 and one or more of: a time that the user device began travelling along the route, a current time, a projected time that the user device will begin travelling along the route, etc.

At act 805, the dynamic rate identification system generates a plurality of dynamic rates based on the prediction of which sectors the user device will pass through and the prediction of the time that the user device will pass through the sectors. At act 807, the dynamic rate identification system determines which types of data the user devices should transmit or receive while travelling along the route based on the plurality of dynamic rates and the predictions obtained in act 803. In some embodiments, act 807 is performed by using the process 700 described above in connection with FIG. 7 .

After act 807, the process ends. In some embodiments, the dynamic rate identification system changes one or more of: the route and the time that the user device begins travelling along the route, based on the plurality of dynamic rates to determine new dynamic rates. For example, the dynamic rate identification system may attempt to determine lower dynamic rates for the user device as it travels along the route.

FIG. 9 is a flow diagram depicting a process for a user device to receive a dynamic rate and stop transmitting at least one type of data, according to various embodiments described herein. The process described in FIG. 9 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 901, the user device transmits or receives one or more types of data, each type of data having a priority measure.

At act 903, the user device transmits location data to a dynamic rate identification system. In some embodiments, the user device transmits data indicating the one or more types of data transmitted or received by the user device to the dynamic rate identification system. At act 905, the user device receives a dynamic rate from the dynamic rate identification system.

At 907, the user device determines, whether at least one type of data of the one or more types of data should not be transmitted based on at least the dynamic rate and the priority of each type of data. At act 909, the user devices causes itself to temporarily stop transmitting the at least one type of data. In some embodiments, act 909 is performed similarly as act 709.

After act 909, the process ends.

FIG. 10 is a flow diagram depicting a process to use a hotspot within a sector to transmit data which a user device is not transmitting based on a dynamic rate, according to various embodiments described herein. The process described in FIG. 10 may be performed by a dynamic rate identification system, such as the dynamic rate identification system 200. First, at act 1001, the dynamic rate identification system identifies one or more hotspots within a sector. The hotspots may be identified based on one or more of: prior hotspots that a user device has connected to, a home network of a user associated with a user device, partnerships with one or more third party entities which have agreed to provide hotspots, or other methods of identifying a hotspot.

At act 1003, the dynamic rate identification system identifies one or more types of data that the user device is not transmitting or receiving based on the dynamic rate. The dynamic rate identification system may receive an indication of the type of data that the user device is not transmitting from the user device.

At act 1005, the dynamic rate identification system may cause the user device to transmit or receive the identified one or more types of data when the user device is connected to at least one hotspot within the sector. The dynamic rate identification system may cause the user device to transmit or receive the identified one or more types of data by performing one or more of: providing the one or more identified hotspots to the user device and providing instructions to the user device to only transmit or receive the identified types of data when the user device is connected to at least one of the identified hotspots.

After act 1005, the process ends.

The following is an example implementation of the dynamic rate identification system when applied to a vehicle. While the following example relates to a vehicle, any user device may be used in the example. In a typical network environment, network providers manage the SIM cards, control the wireless connection, and provide pricing based on a rate card, with volume discounts based on consumption tiers. The rate cards are periodically renegotiated and the rate is “locked-in” to the network provider based on the SIM card and the limitations of a modem included in a vehicle.

In contrast, the dynamic rate identification system uses dynamic pricing of network resources as a function of the time, location, and price per unit of capacity, based on real-time network utilization. These three dimensions shift based on the service level requirements of the vehicle. The dynamic rate identification system is able to optimize the total cost of connectivity by considering the time of day, location of the vehicle, and the network load.

In this example, the network provided by the network provider may be equivalent to a “gigabyte factory” which has a fixed cost. Further, the network may have an average utilization of less than twenty-five percent based on the geography of the coverage area, customer density, time of utilization, etc. The utilization and efficiency of the network is increased by the dynamic rate identification system by using a dynamic rate determined by the dynamic rate identification system. The dynamic rate may be linked to a specific location of any connected device and the current time of day, such as the vehicle in this example.

The network has varying loads throughout a day, and the density of consumption of network services may be variable based on the geography of the area serviced by the network and the time of the day. The dynamic rate identification system is able to consider an aggregate of the network load, individual sectors of the network load, etc.

The dynamic rate identification system is thereby able to optimize the on-vehicle storage and movement of vehicle-generated data based on service requirements for the vehicle data. The service requirements may be determined based on input from a manufacturer of the vehicle, a user of the vehicle, the network provider, etc. This input may take the form of a priority measure used to determine which data is the highest priority to transmit or receive. In this example, the highest priority data is then able to always be transmitted and received, while relatively unimportant or low priority data is transmitted or received when the network load or utilization is low. By optimizing the movement and storage of data, the dynamic rate identification system may cause the vehicle to take advantage of the network when the calculated dynamic rate is lower as opposed to moving large amounts of data during peak hours in sectors with heavy utilization.

The dynamic rate identification system uses intertemporal and interspatial price discrimination with dynamic adjustment due to demand for network resources to determine the dynamic rate. Thus, users of the network are able to experience a lower overall cost structure for certain service tiers of the network.

FIG. 11 is a diagram depicting an example 1100 of using a dynamic rate identification system to apply new dynamic rates to data transmitted from or received by a user device as it travels along a route, according to various embodiments described herein. The example 1100 includes a user device 1101, one or more sectors 1103 a-1103 c, a path 1105, a starting point 1107, and an ending point 1109. The user device 1101 may be a user device, such as the user device 101 described above in connection with FIG. 1 . The one or more sectors 1103 a-1103 c may be network sectors, such as the sectors 103 a-103 c described above in connection with FIG. 1 . In this example, a user device 1101 travels along the path 1105, and a new dynamic rate may be calculated for the user device 1101 as it travels along the path 1105. The path 1105 may be a route, a trajectory, or another type of course along which a user device may travel.

In the example 1100, the dynamic rate identification system receives an indication of the path 1105, along which the user device 1101 will travel. In some embodiments, the dynamic rate identification system also receives a time at which the user device 1101 will travel along the route. The dynamic rate identification system identifies the sectors 1103 a-1103 c as sectors which the user device will pass through as it travels along the route, and calculates a predicted dynamic rate for the user device for each sector. The predicted dynamic rate is a prediction of the rate at which the user device will be charged to use networking services. The predicted dynamic rate for a particular sector may be based on one or more of: a network load, such as a predicted network load, current network load, etc., for the sector; and a predicted time that the user device will be located in the sector. The dynamic rate identification system may use the predicted dynamic rate to determine which types of data are transmitted at certain times along the route travelled by the user device.

In the example 1100, the dynamic rate identification system has predicted that the path 1105 travelled by the user device will result in a predicted rate of $5 per gigabyte at a first time, $9 per gigabyte at a second and third time, and $2 per gigabyte at a fourth time. The dynamic rate identification system may use these predicted rates to preliminarily instruct the user device to stop or resume transmitting or receiving certain types of data at those times. These preliminary instructions may change based on changes in the dynamic rate as the user device travels along the path 1105.

In the example 1100, at a first period of time, the user device 1101 is present in sector 1103 a. At the first time, the dynamic rate identification system has predicted that the rate will be $5 per gigabyte. Based on this rate, the dynamic rate identification system has determined that the user device 1101 should stop transmitting or receiving low priority data. The dynamic rate identification system calculates a dynamic rate for the user device as it enters the sector 1103 a and determines which types of data the user device should stop or resume transmitting or receiving. As seen in the example 1100, at time “1,” while the user device is in sector 1103 a, the dynamic rate is calculated at $5 per gigabyte. The dynamic rate identification system may use this rate to determine which types of data the user device 1101 should stop or resume transmitting or alter the preliminary instructions given to the user device. Because the actual rate and predicted rate are the same, the dynamic rate identification system allows the user device 1101 to follow the preliminary instructions and the user device 1101 is caused to stop transmitting and receiving low priority data.

At a second period of time which is after the first period of time, the user device 1101 has travelled along the route and is present in sector 1103 b. At this second time, the predicted rate is $9 per gigabyte, and it has been determined that the user device should only transmit or receive medium or high priority data. However, the actual dynamic rate is calculated at $20 per gigabyte because the network in sector 1103 b is experiencing unusually high network loads. At this rate, it is determined that the user device should stop transmitting and receiving any data that isn't of the highest priority, even though the predicted rate indicated that the user device should be able to transmit medium priority data in this sector at the second time. As a result, at the second time, the user device is caused to stop receiving and transmitting any data that isn't of the highest priority.

At a third period of time that is after the second period of time, while the user device 1101 is still present in sector 1103 b and the network load is lower than it was at the second time, the actual dynamic rate may be calculated again to change to $8 per gigabyte, compared to the predicted rate of $9 per gigabyte. The dynamic rate identification system predicted that the user device 1101 would be able to transmit or receive medium priority data, and because the actual rate is lower, the user device 1101 is still able to transmit or receive the medium priority data. Thus, at this rate the user device 1101 is able to resume transmitting and receiving medium priority data, and the user device 1101 is caused to do so.

Finally, at a fourth period of time after the third period of time, the user device 1101 has travelled to sector 1103 c, which is experiencing a low network load at this time. The dynamic rate identification system predicted that sector 1103 c would experience a low network load at this time, resulting in a predicted rate of $2 per gigabyte, which is used to determine that the user device can transmit and receive any type of data regardless of priority. The actual dynamic rate is also calculated to be $2 per gigabyte, and it is determined that the user device is able to follow the preliminary instructions to transmit and receive any type of data at this rate. Thus, at the fourth time, the user device is caused to resume transmission and reception of all types of data regardless of priority.

In some embodiments, the dynamic rate identification system may use the predicted dynamic rates to: preliminarily plan when the user device is able to transmit or receive certain types of data; when the user device should transmit or receive large amounts of certain types of data based on their priority (such as ensuring that large amounts of low priority data is transmitted when the dynamic rate is low, ensuring that no low priority data is transmitted when the dynamic rate is high, etc.); alter the route based on predicted dynamic rates for other sectors in order to ensure the dynamic rate does not exceed a certain threshold dynamic rate; or use the predicted dynamic rates in other manners which affect one or more of: the network load of one or more sectors, the price paid by a user for networking services provided to a user device and the ability of the user device to transmit or receive certain types of data. In some embodiments, the dynamic rate identification system calculates an actual dynamic rate when the user device enters a sector, and the actual dynamic rate is used to determine which types of data the user device should stop or resume transmitting or receiving. In some embodiments, the dynamic rate identification system periodically adjusts the dynamic rate for the user device.

In an example embodiment, one or more user devices, such as the user device 1101, are drones. In such an embodiment, a new dynamic rate is applied to the drone as the drone moves throughout sectors, such as the sectors 1103 a, 1103 b, and 1103 c. Furthermore, the dynamic rate may be calculated based on the altitude of the drone. For example, a delivery drone may have a different dynamic rate applied when taking off, when traveling at a certain altitude, and when landing. Thus, the dynamic rate may be calculated based on three-dimensional movement of the user device.

In some embodiments, one or more user devices, such as the user device 1101, are robots or other automated equipment, such as mining equipment, construction equipment, autonomous vehicles, or other robotic or autonomous equipment. For example, a mining robot may have various sensors which collect data related to whether a mine is safe for humans to enter, moving the mining robot within a mine or worksite, or other data related to the functionality of such a robot. The mining robot may receive a dynamic rate during the day which is higher than a dynamic rate during the night. Thus, the mining robot may transmit high volumes of data which is critical, such as data related to the safety of the mine regardless of the dynamic rate, but may transmit other non-critical data when the dynamic rate is lower, such as during the night. Furthermore, it may be determined that the mining robot should be used at night to take advantage of the lower dynamic rate for transmitting or receiving data related to the movement of the mining robot, which may require high volume of data transmission and reception.

The various embodiments described above can be combined to provide further embodiments. All of the U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications and non-patent publications referred to in this specification and/or listed in the Application Data Sheet are incorporated herein by reference, in their entirety. Aspects of the embodiments can be modified, if necessary to employ concepts of the various patents, applications and publications to provide yet further embodiments.

These and other changes can be made to the embodiments in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to limit the claims to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which such claims are entitled. Accordingly, the claims are not limited by the disclosure. 

1. A system, comprising: at least one processor; at least one memory coupled to the at least one processor, the memory having computer-executable instructions stored thereon that, when executed by the at least one processor, cause the system to: receive user device data from a user device, the user device data comprising data describing a location of the user device; identify a cost for networking services to be provided to the user device based on an indication of a location within which the networking services are provided and a time at which the networking services are to be provided; determine a dynamic rate for the user device to use the networking services based on the user device data and the cost for networking services; and cause the user device to transmit data based on the dynamic rate.
 2. The system of claim 1, wherein the user device data further comprises an indication of a priority of a type of data that the user device transmits.
 3. The system of claim 2, wherein the computer-executable instructions, when executed by the at least one processor to cause the user device to transmit data based on the dynamic rate, further cause the system to: cause the user device to transmit data based on the priority of the type of data that the user device transmits and the dynamic rate.
 4. The system of claim 1, wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to: identify a path of the user device; identify one or more network sectors within which the user device is likely to be located based on the path of the user device; for each respective network sector of the one or more network sectors: identify a respective cost for networking services to be provided to the user device within the respective network sector based on the path of the user device; determine a respective dynamic rate for the user device to use the networking services based on the user device data and the respective cost for networking services; and cause the user device to transmit data based on the respective dynamic rate when the user device is located within the respective network sector.
 5. The system of claim 4, wherein the computer-executable instructions, when executed by the at least one processor, further cause the system to: identify one or more speeds of the user device as the user device travels along the identified path.
 6. The system of claim 5, wherein the computer-executable instructions, when executed by the at least on processor to determine the respective dynamic rate, further cause the processor to: determine the respective dynamic rate for the user device based on the user device data, the respective cost for networking services, and the one or more speeds of the user device.
 7. The system of claim 4, wherein the computer-executable instructions, when executed by the at least one processor to cause the user device to transmit data based on the respective dynamic rate, further cause the processor to: provision one or more resources within the respective network sector for the user device.
 8. The system of claim 7, wherein the computer-executable instructions, when executed by the at least on processor to provision the one or more resources further causes the processor to: allocate one or more network slices for the user device.
 9. The system of claim 1, wherein the location within which networking services are provided includes an indication of the altitude of the user device.
 10. A method in a dynamic rate identification system, the method comprising: identifying one or more sectors of a network, each sector representing a geographic area within which the network is able to provide networking services to user devices; for each sector of the one or more sectors: identifying a cost for providing networking services to user devices located within the sector; and identifying a change in the cost for providing networking services over time; receiving data from a user device, the user device data comprising data describing a location of the user device, data describing one or more types of data for which the user device requires networking services, and data describing a priority measure for each type of data of the one or more types of data; determining a sector within which the user device is located based on the location of the user device and the identified one or more sectors; determining a dynamic rate for providing networking services to the user device based on a current time, the cost for providing networking services to user devices located within the determined sector, and the change in the cost for providing networking services over time within the determined sector; determine whether the user device should not transmit at least one type of data of the one or more types of data based on the priority measure for each type of data and the determined dynamic rate; and causing the user device to not transmit the at least one type of data.
 11. The method of claim 10, further comprising: receiving, over a period of time, one or more updates regarding the location of the user device; and for each respective update of the one or more updates: determining a new sector within which the user device is located based on at least the respective update; determining a new current time; and determining a new dynamic rate for providing networking services to the user device based on the new current time, the cost for providing networking services to user devices located within the new sector, and the change in the cost for providing networking services over time within the new sector.
 12. The method of claim 10, further comprising: receiving an indication of a route of the user device, the route including one or more potential future locations of the user device; one or more times that the user device will be located at the one or more future locations based on the indication of the route; and determining the dynamic rate based on the one or more future locations included in the route and the one or more times that the user device will be located at the one or more future locations.
 13. The method of claim 10, further comprising: identifying a speed of the user device; and determining the dynamic rate based on the current time, the cost for providing networking services, the change in the cost for providing networking services over time, and the speed of the user device.
 14. A method in a user device, the method comprising: transmitting one or more types of data, each type of data having a priority, via a network; transmitting location data to a dynamic rate identification system; receiving, from the dynamic rate identification system, a dynamic rate; determining, whether at least one type of data of the one or more types of data should not be transmitted by the user device based on at least the priority of each type of data and the dynamic rate; and temporarily stopping the transmission of the at least one type of data.
 15. The method of claim 14, further comprising: receiving, from the dynamic rate identification system, an indication of one or more hotspots; and causing the user device to transmit the at least one type of data when the user device is able to access the hotspot.
 16. The method of claim 14, further comprising: receiving, from the dynamic rate identification system, an indication of one or more dynamic rates, each of the one or more dynamic rates being applied to the user device at a selected time; and causing the user device to transmit the at least one type of data during at least one of the selected times based on the one or more dynamic rates.
 17. The method of claim 14, wherein the location data comprises an altitude of the user device.
 18. The method of claim 14, wherein the location data comprises a path which the user device will travel, and wherein the method further comprises: receiving, from the dynamic rate identification system, an indication of one or more dynamic rates which will be applied to the user device as the user devices travels along the path; and causing the user device to transmit the at least one type of data based on the one or more dynamic rates.
 19. The method of claim 18, wherein the location data further comprises a speed at which the user device travels along the path.
 20. The method of claim 14, wherein the location data indicates that the user device is located within a first network sector, the method further comprising: transmitting second location data to the dynamic rate identification system, the second location data indicating that the user device is located within a second network sector; receiving a second dynamic rate; determining, whether second at least one type of data of the one or more types of data should not be transmitted by the user device based on at least the priority of each type of data and the second dynamic rate; and temporarily stopping the transmission of the second at least one type of data. 